Network Function Virtualization (NFV) is becoming a key driver and architecture in many large networks for both service providers and enterprises. Generally, NFV entails virtualizing certain network functions that would traditionally be implemented as separate network appliances. For example, NFV may virtualize the functions of firewalls, accelerators, intrusion detection and/or prevention devices, load balances, or the like.
NFV implementations often employ Service Function Chains (SFCs), to control which functions/services are applied to network traffic. For example, a particular SFC may dictate that traffic should be sent through a firewall service function, then through a network address translation (NAT) service function, and finally through a load balancer service function, before being sent on to its destination.